
//////////////////////////////////////////////////////////////////////////////

#ifndef MFERRNO_H
#define MFERRNO_H

#ifdef __cplusplus
extern "C" {
#endif

//////////////////////////////////////////////////////////////////////////////
// Reader Error Codes                   Base Address Start:      0000
//                                      Base Address End:        -999
//////////////////////////////////////////////////////////////////////////////
#define READER_ERR_BASE_START           0
#define MI_OK                           0
#define MI_CHK_OK                       0
#define MI_CRC_ZERO                     0

#define MI_CRC_NOTZERO                  1

#define MI_NOTAGERR                     (-1)
#define MI_CHK_FAILED                   (-1)
#define MI_CRCERR                       (-2)
#define MI_CHK_COMPERR                  (-2)
#define MI_EMPTY                        (-3)
#define MI_AUTHERR                      (-4)
#define MI_PARITYERR                    (-5)
#define MI_CODEERR                      (-6)

#define MI_SERNRERR                     (-8)
#define MI_KEYERR                       (-9)
#define MI_NOTAUTHERR                   (-10)
#define MI_BITCOUNTERR                  (-11)
#define MI_BYTECOUNTERR                 (-12)
#define MI_IDLE                         (-13)
#define MI_TRANSERR                     (-14)
#define MI_WRITEERR                     (-15)
#define MI_INCRERR                      (-16)
#define MI_DECRERR                      (-17)
#define MI_READERR                      (-18)
#define MI_OVFLERR                      (-19)
#define MI_POLLING                      (-20)
#define MI_FRAMINGERR                   (-21)
#define MI_ACCESSERR                    (-22)
#define MI_UNKNOWN_COMMAND              (-23)
#define MI_COLLERR                      (-24)
#define MI_RESETERR                     (-25)
#define MI_INITERR                      (-25)
#define MI_INTERFACEERR                 (-26)
#define MI_ACCESSTIMEOUT                (-27)
#define MI_NOBITWISEANTICOLL            (-28)
#define MI_QUIT                         (-30)

#define MI_RECBUF_OVERFLOW              (-50) 
#define MI_SENDBYTENR                   (-51)
	
#define MI_SENDBUF_OVERFLOW             (-53)
#define MI_BAUDRATE_NOT_SUPPORTED       (-54)
#define MI_SAME_BAUDRATE_REQUIRED       (-55)

#define MI_WRONG_PARAMETER_VALUE        (-60)

#define MI_BREAK                        (-99)
#define MI_NY_IMPLEMENTED               (-100)
#define MI_NO_MFRC                      (-101)
#define MI_MFRC_NOTAUTH                 (-102)
#define MI_WRONG_DES_MODE               (-103)
#define MI_HOST_AUTH_FAILED             (-104)

#define MI_WRONG_LOAD_MODE              (-106)
#define MI_WRONG_DESKEY                 (-107)
#define MI_MKLOAD_FAILED                (-108)
#define MI_FIFOERR                      (-109)
#define MI_WRONG_ADDR                   (-110)
#define MI_DESKEYLOAD_FAILED            (-111)

#define MI_WRONG_SEL_CNT                (-114)

#define MI_WRONG_TEST_MODE              (-117)
#define MI_TEST_FAILED                  (-118)
#define MI_TOC_ERROR                    (-119)
#define MI_COMM_ABORT                   (-120)
#define MI_INVALID_BASE                 (-121)
#define MI_MFRC_RESET                   (-122)
#define MI_WRONG_VALUE                  (-123)
#define MI_VALERR                       (-124)

#define MI_SAKERR                 0x46	//added by robbie

#define  TI_ACCESSTIMEOUT                (10)
#define  TI_OK                       9
#define  TI_Revdata_Err			   	12
#define  TI_Blocklocked              13
#define  TI_Command_unsurport        14 
#define	 TI_Commandformat_err	     15
#define	 TI_Option_unsurport	     17
#define	 TI_Unkown_err			     18
#define	 TI_Block_notexist 		     19
#define  TI_Block_lockunsucess       20
#define  I1_NO_TAG                  (1)
#define  I1_CRCERR                  (2)
#define  I1_COLLERR                 (3)
#define  I1_SNRERR                  (4)
#define  I1_COUNTERR                (5)
#define  I1_TSOCC                   (6)
#define  I1_WEAK_COLLISION          (8)
#define  I1_NO_WRITE_OK	            (16)
#define  I1_NO_HALT_OK              (32)
#define  I1_WRONGPARAM              (-98)
#define  I1_TIMEOUT                 (-70)
#define	 TI_NO_ERR		   			 0
#define	 I2_NO_TAG		    		 8
#define	 I2_CRCERR		    		 2
#define	 I2_COLLERR		    		 11
#define	 I2_SNRERR		     		 4 
#define	 I2_COUNTERR		     	 5
#define	 I2_TSOCC		     		 6
#define  I2_FRAMINGERR        		 7

#ifdef __cplusplus
}
#endif

#endif // COMMON_H
